草庐IT

mysql aes_encrypt 到 longtext 列

全部标签

mysql - 在 mysql 中使用 AES_ENCRYPT 和 AES_DECRYPT 搜索 LIKE

我使用这种技术来加密我数据库的某些字段:HowtouseAES_ENCRYPTandAES_DECRYPTinmysql效果很好,但我遇到了问题。既然字段的内容是加密的,我就不能用经典的方式做LIKE了!我尝试在解密字段上执行类似操作,但sql无法识别该字段!!这是结构(非常简单):CREATETABLE`messages`(`id`int(11)NOTNULL,`message`varchar(250)NOTNULL,`crypt_key`varchar(50)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=latin1;ALTERTABLE`mess

mysql aes_encrypt 到 longtext 列

是否可以将MySQLAES_ENCRYPT存储到LONGTEXT列中?我知道我假设使用varbinary或blob,但我有一个表,我在其中存储了一堆随机“设置”,并且settings_value列是长文本。我去那里存储一个“smtp邮件密码”,有点卡住了。如果没有,我想,我会通过php将其存储为十六进制字符串。解决方案:我的查询是这样的:INSERTINTOtable(setting_value)VALUES(AES_ENCRYPT('password','key'))ONDUPLICATEKEYUPDATEsetting_value=VALUES(setting_value)正如您将

php - 删除 PHP 中的换行符 - 但它们仍显示在 MySQL 的 LONGTEXT 中

大家好。好的-像这样清理我的字符串:$clean_string=preg_replace("/[\n\r]/","",trim($dirty_string));..将它回显到屏幕上,它起作用了——一大段可爱的文本,没有换行符。将其插入MySQL中的LONGTEXT类型字段-然后在SequelPro中预览结果数据-由于某种原因它有新行。很多,就像它是新的一样,在我清理它之前。我做错了什么?是长文本吗?这就是当我将SO页面的内容用作字符串时html源代码的样子-注意许多空格和换行符-即使在清理后也是如此!mysql-TroublewithCONCATandLongtext-StackOve

iphone - 在 MySQL 中的何处存储 AES_ENCRYPT 的 key ?

我为iPhone/iPodTouch开发了一个应用程序,它必须能够访问MySQL数据库。我写了一个PHPAPI,我可以从iPhone应用程序调用它。在数据库中我存储了我想要加密的敏感数据。我想我会使用AES_ENCRYPT。我的问题是在哪里存储key。如果您知道在哪里存储用于加密/解密的key,这样任何其他人都看不到它,那就太好了,例如黑客。 最佳答案 一般来说:不要将您的key保存在网络服务器可以直接访问的服务器部分。例如,如果您的站点位于/var/www/home中,请不要将您的key放在那里。将它放在树的Web服务器部分之外的

php - 使用 AES_ENCRYPT 时 Mysqli 准备语句出现问题

我正在尝试对MySQL执行简单的插入操作。我正在使用准备好的语句使用mysqli。下面是代码:$sql_query="UPDATE$tableSET$name=AES_ENCRYPT(?,'$key')WHERE$id_name='$_SESSION[$id_name]'";$stmt=$mysqli->prepare($sql_query);$stmt->bind_param('b',$value);$stmt->execute();是的,我在代码的前面声明了$mysqli与mySQL数据库服务器的连接。$key也在脚本的前面声明。以下是调用此代码时mySQL通用日志文件的输出:12

mysql - aes_encrypt 插入表

我的查询不工作INSERTINTOrebuilder(id_utente,pwd)VALUES('75693',AES_ENCRYPT('password','set'))我没有错误,但数据库表中的pwd值为NULL。想法?发件人斯蒂芬妮娅 最佳答案 参见SQLFIDDLEcreatetablerebuilder(id_utenteint,pwdvarbinary(200));--datainsertintorebuilder(id_utente,pwd)values(75693,aes_encrypt('password','se

mysql innodb inner join with longtext 很慢

为了支持事务,我上周将一个项目的所有MySQL表从MyISAM迁移到InnoDB。为此,我使用了altertable命令。大多数工作正常,但是一个特定的查询运行非常非常慢,并且总是给出错误Incorrectkeyfilefortable'/tmp/#sql_xxxx_x.MYI后来我将问题缩小到2个表的内部连接,即user表和agreement表。而内连接发生在user的外键字段(即agreement_id)和agreement的主键字段(即id)。user表只有50,000行数据,而agreement表只有一行。并且我们已经为用户的agreement_id设置了索引。无论如何,这似乎

php - 相当于 MySQL 的 hex(aes_encrypt)

在mySql中,hex(AES_ENCRYPT('mytext','mykeystring'))。这给了我一个带有字符的字符串,而不是一些不可读的东西。我怎样才能在php中做这样的事情?是否有内置函数可以让我这样做?就像mySql有hex和aes_encrypt和password/salt。我不是在php中寻找精确的aes加密。任何返回一串字母和数字并且不容易破解的东西都可以(有盐) 最佳答案 PHP等价物是://MySQL'sAES_ENCRYPTusesRijndael128withECBmode$enc_text=mcrypt

mysql - MySQL 数据库中有一列 LONGTEXT 的内存消耗

我正在我的MySQL数据库中创建一个日志表。其中一个字段将仅在大约5%的日志中使用,并将包含堆栈跟踪和其他供开发人员使用的冗长信息。我正在考虑使用LONGTEXT字段,但我想知道使用它是否会使我的数据库增长得非常快,即使该列在95%的行中都是空的。所以我的问题很明确,即使该列在大多数行中为空,使用LONGTEXT列是否会消耗内存?例如,如果我改用TEXT并截断太长的字符串,我是否会在数据库上节省大量空间。重要的是要补充一点,随着时间的推移会有很多日志。谢谢! 最佳答案 尽管MySQL的一个差异与另一个差异略有不同,但一般来说,像LO

PHP/MySQL : What data type to chose for encrypted passwords (bcrypt, 最大。 100 个字符)

我使用以下方法在将密码存储到MySQL数据库之前对其进行加密。目前我已将密码的长度限制为最大。20个字符,因为我不确定更长的密码是否会由于加密输出而导致此处出现问题。在PHP中,我使用以下内容进行加密:$pw=password_hash($_POST["pw"],PASSWORD_BCRYPT);密码在传递之前正在客户端进行修整。谁能告诉我CHAR(60)是否足以覆盖最多100个字符(数字、大写和小写字母,特殊字符)?此外,是否有一个共同的最大值。应该为密码设置的字符限制-不会增加漏洞?我了解到有些人肯定想使用更长的密码,例如短语等。 最佳答案